#include "defs.h"
#include <errno.h>
-static FILE *file_out;
+static gbfile *file_in, *file_out;
static char manufacturer[4];
static const route_head *head;
static char *timeadj = NULL;
-static textfile_t* tin;
#define MYNAME "IGC"
#define MAXRECLEN 79 // Includes null terminator and CR/LF
size_t len;
char *c;
- *rec = c = textfile_read(tin);
+ *rec = c = gbfgetstr(file_in);
if (c == NULL) return rec_none;
len = strlen(c);
{
char *ibuf;
- tin = textfile_open_read(fname, MYNAME);
+ file_in = gbfopen(fname, "r", MYNAME);
// File must begin with a manufacturer/ID record
if (get_record(&ibuf) != rec_manuf_id || sscanf(ibuf, "A%3[A-Z]", manufacturer) != 1) {
static void rd_deinit(void)
{
- textfile_done(tin);
+ gbfclose(file_in);
}
/**
if (NULL == (tm = gmtime(&date))) {
fatal(MYNAME ": Bad track timestamp\n");
}
- xfprintf(MYNAME, file_out, "HFDTE%s\r\n", date2str(tm));
+ gbfprintf(file_out, "HFDTE%s\r\n", date2str(tm));
// Other header data may have been stored in track description
if (track && track->rte_desc && strncmp(track->rte_desc, HDRMAGIC, strlen(HDRMAGIC)) == 0) {
for (str = strtok(track->rte_desc + strlen(HDRMAGIC) + strlen(HDRDELIM), HDRDELIM);
str; str = strtok(NULL, HDRDELIM)) {
- xfprintf(MYNAME, file_out, "%s\r\n", str);
+ gbfprintf(file_out, "%s\r\n", str);
}
} else {
// IGC header info not found so synthesise it.
if (NULL != (wpt = find_waypt_by_name("PILOT")) && wpt->description) {
str = wpt->description;
}
- xfprintf(MYNAME, file_out, "HFPLTPILOT:%s\r\n", str);
+ gbfprintf(file_out, "HFPLTPILOT:%s\r\n", str);
}
}
static void wr_task_wpt_name(const waypoint * wpt, const char *alt_name)
{
- xfprintf(MYNAME, file_out, "C%s%s\r\n", latlon2str(wpt),
+ gbfprintf(file_out, "C%s%s\r\n", latlon2str(wpt),
wpt->description ? wpt->description : wpt->shortname ? wpt->shortname : alt_name);
}
sscanf(rte->rte_desc, DATEMAGIC "%6[0-9]: %s", flight_date, task_desc);
}
- xfprintf(MYNAME, file_out, "C%s%s%s%04u%02u%s\r\n", date2str(tm),
+ gbfprintf(file_out, "C%s%s%s%04u%02u%s\r\n", date2str(tm),
tod2str(tm), flight_date, task_num++, num_tps, task_desc);
if (!have_takeoff) {
if (unknown_alt == gnss_alt) {
gnss_alt = 0;
}
- xfprintf(MYNAME, file_out, "B%02u%02u%02u%sA%05d%05d\r\n", tm->tm_hour,
+ gbfprintf(file_out, "B%02u%02u%02u%sA%05d%05d\r\n", tm->tm_hour,
tm->tm_min, tm->tm_sec, latlon2str(wpt), pres_alt, gnss_alt);
}
static void wr_init(const char *fname)
{
- file_out = xfopen(fname, "wb", MYNAME);
+ file_out = gbfopen(fname, "wb", MYNAME);
}
static void wr_deinit(void)
{
- fclose(file_out);
+ gbfclose(file_out);
}
static void data_write(void)
{
- xfputs(MYNAME, "AXXXZZZGPSBabel\r\n", file_out);
+ gbfputs("AXXXZZZGPSBabel\r\n", file_out);
wr_header();
wr_tasks();
wr_track();
- xfprintf(MYNAME, file_out, "LXXXGenerated by GPSBabel Version %s\r\n", gpsbabel_version);
- xfputs(MYNAME, "GGPSBabelSecurityRecordGuaranteedToFailVALIChecks\r\n", file_out);
+ gbfprintf(file_out, "LXXXGenerated by GPSBabel Version %s\r\n", gpsbabel_version);
+ gbfputs("GGPSBabelSecurityRecordGuaranteedToFailVALIChecks\r\n", file_out);
}